#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;

long long start[100100],reach[100100];
int n,k;
int a[100100],b[100100];
bool res[100100];
void slove()
{
	k=0;
	int minGas;
	fill(res,res+n,false);
	reach[0]=reach[n]=0;
	start[0]=start[n]=a[0];
	minGas=0;
	for(int i=1;i<n;i++)
	{
		reach[i]=start[i-1]-b[i-1];
		start[i]=reach[i]+a[i];
		if(reach[i]<minGas) minGas=reach[i];
		//printf("%reach[%d]=%d ",i+1,reach[i]);
	}
	//printf("\n1 : %d\n",minGas);
	for(int i=0;i<n;i++) if(reach[i]==minGas)
		res[i]=true,k++;
	minGas=0;
	for(int i=n-1;i>0;i--)
	{
		reach[i]=start[i+1]-b[i];
		start[i]=reach[i]+a[i];
		if(reach[i]<minGas) minGas=reach[i];
		//printf("%reach[%d]=%d ",i+1,reach[i]);
	}
		//printf("\n2 : %d\n",minGas);
	for(int i=0;i<n;i++) if(!res[i]&&reach[i]==minGas)
		res[i]=true,k++;
}
int main()
{
	while(cin>>n)
	{
		for(int i=0;i<n;i++) scanf("%d",a+i);
		for(int i=0;i<n;i++) scanf("%d",b+i);
		slove();
		cout<<k<<endl;
		for(int i=0;i<n;i++) if(res[i])
			printf("%d ",i+1);
		cout<<endl;
	}
	return 0;
}
